import autoImport from "unplugin-auto-import/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";

export default () => {
  return autoImport({
    // 自动导入 ElementPlus JS API
    resolvers: [ElementPlusResolver()],
    imports: [
      "vue",
      "vue-router",
      "pinia",
      {
        // 自动导入你的 api 目录
        "@/api/index": [["default", "Api"]],
        // 自动导入 tools-utils 工具函数
        "tools-utils": [["default", "Utils"]],
        // 自动导入 src/hooks/useAuth.js 中的所有导出
        "@/hooks/useAuth": ["useAuth", "hasAuth", "hasAuthAll", "withAuth", "withAuthAsync"],
        // 自动导入 src/hooks/useGlobals.js 中的 useGlobals 和 useGlobalMethods 方法
        "@/hooks/useGlobals": ["useGlobals", "useGlobalMethods"],
        // 自动导入 src/constants/perms.js 命名为 PERMS 变量
        "@/constants/perms": [["default", "PERMS"]],
        // 自动导入 src/constants/router.js 命名为 ROUTE_PATHS 变量
        "@/constants/router": [["default", "ROUTE_PATHS"]],
        // 自动导入 useCrudHook (Avue CRUD 组合式函数)
        "avue-table/useCrudHook": [["default", "useCrudHook"]],
      },
    ],
    // 在模板中可用
    vueTemplate: true,
    // dirs 选项，用于按目录自动导入
    dirs: [
      // 扫描 src/store/modules/ 下的所有 .js/.ts 文件
      "src/store/modules",
    ],
    // eslint 自动导入全局变量
    eslintrc: {
      enabled: true,
      globalsPropValue: true,
      filepath: "./.eslint-auto-import.json",
    },
  });
};
